www.gusucode.com > 走近 STLC++源码程序 > 走近 STL/approachstl/STL/Stl_cpp/stl_cpp_15.cpp

    //stl_cpp_15.cpp
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main(void)
{
    int a[10]={12,31,5,2,23,121,0,89,34,66};
    vector<int> v1(a,a+10);
    vector<int>::iterator result1,result2;//result1和result2是随机访问迭代器
    result1=find(v1.begin(),v1.end(),2);
    //在v1中找到2,result1指向v1中的2 
    result2=find(v1.begin(),v1.end(),8);
    //在v1中没有找到8,result2指向的是v1.end() 
    cout<<result1-v1.begin()<<endl; //3-0=3或4-1=3,屏幕结果是3
    cout<<result2-v1.end()<<endl;    
    int b[9]={5,2,23,54,5,5,5,2,2};
    vector<int> v2(a+2,a+8);
    vector<int> v3(b,b+4);
    result1=search(v1.begin(),v1.end(),v2.begin(),v2.end());
    cout<<*result1<<endl; 
    //在v1中找到了序列v2,result1指向v2在v1中开始的位置 
     result1=search(v1.begin(),v1.end(),v3.begin(),v3.end());
     cout<<*(result1-1)<<endl;
    //在v1中没有找到序列v3,result指向v1.end(),屏幕打印出v1的最后一个元素66    
     vector<int> v4(b,b+9); 
     int i=count(v4.begin(),v4.end(),5);
     int j=count(v4.begin(),v4.end(),2);
     cout<<"there are "<<i<<" members in v4 equel to 5"<<endl;
     cout<<"there are "<<j<<" members in v4 equel to 2"<<endl; 
     //计算v4中有多少个成员等于 5,2
    cin.get();
    return 0;        
}